7-05 程序中断方式

中断系统
中断的基本概念

解读:
- 中断源:向 CPU 发送中断信号的设备;
- 如果 CPU 处于“关中断”的状态就不会响应中断信号,该状态会存储在 PSW (或者允许中断触发器 EI)中;
中断请求的分类

解读:
- 在一段指令的开头加上关中断指令,结尾添加开中断指令,那么这一段指令就不会被中断,称为“原子操作”;
- 非屏蔽中断必须被响应;
- 在计组中,我们更多的讨论的是外设请求的屏蔽中断;
中断请求标记

中断判优
实现

解读:
- 当优先级更高的请求发出,硬件排队器中对应的输出就为 1,其他的都为 0;
- 软件的实现依靠很多指令,速度明显更慢,所以现在用的更多的是硬件排队器;
优先级设置
原则:
1. 硬件故障中断属于最高级,其次是软件中断;
2. 非屏蔽中断优于可屏蔽中断;
3. DMA 请求优于 I/O 设备传送的中断请求,这与下一条原则的原因是一样的;
4. 高速设备优于低速设备,因为高速设备的中断请求处理的更快;
5. 输入设备优于输出设备,如果 CPU 不及时取走输入的信息,会导致输入信息的丢失;
6. 实时设备优于普通设备,这是显然的。
中断处理过程
找到中断服务程序的入口,核心就是不断的更新 PC 的值。

中断隐指令

硬件向量法

解读:
- 为什么不让形成部件直接得到入口地址呢?如果是这样,不利于中断服务程序的修改,一旦修改就要改变形成部件的计算逻辑。假如利用向量,就可以只修改其向量值就可以了;
- 中断隐指令指的是一系列任务,不是一条具体的指令;
中断服务程序

多重中断
基本概念
就是中断中嵌套中断。


解读:
- 屏蔽字用来屏蔽某些中断,防止被过多的,不合理的中断。优先级高的不应该被低的打断。
中断屏蔽技术

解读:
- 若中断请求触发器 MASK 的值为 1111,那么当 4 号设备进行工作的时候,就不允许被任何设备中断,包括它自己;

例题

总的来说,需要屏蔽哪个就置哪个位为 1。我们以 A 为例,由于 D 的优先级高于 A 所以,A 执行时可以被 D 中断,也就是说 A 的屏蔽字中 D 位只能为 0 。



总结

